package com.ark.service.service;

import com.ark.common.domain.entity.sys.SysUser;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface SysUserService extends IService<SysUser> {

    /**
     * 根据用户名获取用户信息
     * @param username 用户名
     * @return 用户
     */
    SysUser selectUserByUsername(String username);

    /**
     * 获取用户列表
     * @param user 用户筛选条件
     * @return 用户列表
     */
    IPage<SysUser> selectUserList(Page<SysUser> page, SysUser user);

    /**
     * 插入用户
     * @param user 用户信息
     */
    boolean insertUser(SysUser user);

    /**
     * 更新用户信息
     * @param user 更新信息
     */
    boolean updateUser(SysUser user);

    /**
     * 删除用户
     * @param userIds 用户id
     */
    boolean deleteUserByIds(Long[] userIds);

    /**
     * 邮箱是否存在
     * @param email 邮箱
     */
    boolean emailExist(String email);

    /**
     * 检查用户名是否唯一
     * @param username 用户名
     */
    boolean checkUserNameUnique(String username);

    /**
     * 查询用户Id
     * @param userId 用户Id
     * @return 用户信息
     */
    SysUser selectUserById(Long userId);
}
